1. Field
The present disclosure pertains to the field of information processing, and more particularly, to the field of encrypting information.
2. Description of Related Art
In an information processing system, secret information may be protected from discovery by encrypting it. Private key encryption algorithms, such as the advanced encryption standard (“AES”) defined in Federal Information Processing Standard 197 from the National Institute of Standards and Technology, use a private key to transform unencrypted information (“plain-text”) into encrypted information (“cipher-text”) that generally has no meaning unless subsequently decrypted by a reverse transformation using the private key.
Some encryption algorithms, such as AES, may be characterized by their sequence of operations, known as a “round,” that is performed on the plain-text to produce a first intermediate result, and then repeated exactly or substantially on the first intermediate result to produce a second intermediate result, and so on, until the information is satisfactorily encrypted. The private key is expanded or otherwise transformed to derive a series of “round keys” so that a different key is used during each round.
Each AES round is performed on 128 bits of data arranged in a two dimension array, called the state. Each encryption round, except the last round, includes combining the round key with the state, processing the state using a non-linear substitution table, shifting the rows of the state, and mixing the columns of the state. The mixing operation is omitted from the last round. The number of rounds depends on the length of the key. AES may use a 128, 192, or 256 bit key; the number of rounds is 10, 12, or 14, respectively.